package com.sengled.cloud.biz.union.mgt.service.sys;


import java.util.List;
import java.util.Map;

import com.sengled.cloud.biz.union.mgt.model.po.Shop;
import com.sengled.cloud.biz.union.mgt.model.po.ShopAccount;
import com.sengled.cloud.biz.union.mgt.model.po.UserAccountDetail;
import com.sengled.cloud.biz.union.mgt.model.request.SaveAccountPwdRequest;
import com.sengled.cloud.biz.union.mgt.model.request.SaveAccountStartStopRequest;
import com.sengled.cloud.biz.union.mgt.model.request.SaveShopRequest;
import com.sengled.cloud.biz.union.mgt.model.request.SaveUserAccountRequest;
import com.sengled.cloud.biz.union.mgt.model.request.SetAccountStatusRequest;
import com.sengled.cloud.biz.union.mgt.model.request.UserAccountListRequest;
import com.sengled.cloud.biz.union.mgt.model.response.ResponseMessage;
import com.sengled.cloud.biz.union.mgt.model.vo.SelectBoxDataVo;
import com.sengled.cloud.biz.union.mgt.model.vo.ShopDetailVo;
import com.sengled.cloud.biz.union.mgt.model.vo.ShopQueryParamsBean;
import com.sengled.cloud.biz.union.mgt.model.vo.ShopVo;
import com.sengled.cloud.biz.union.mgt.model.vo.UserAccountsVo;

/**
 * Created by FMC on 2017/10/27.
 */
public interface IAccountService {

//	ResponseMessage<List<ShopVo>> listShopsByPage(ShopQueryParamsBean q);
//
//	ResponseMessage saveOrUpdate(SaveShopRequest saveShopRequest);
//
//	ResponseMessage delete(Long id);
//
//	ResponseMessage<ShopDetailVo> getShopDetailById(Long id);
//
//	ResponseMessage<List<SelectBoxDataVo>> getShopSelectData();
	
	ResponseMessage<List<UserAccountsVo>> listUserAccountsByPage(UserAccountListRequest q);

	ResponseMessage saveOrUpdateUserAccount(
			SaveUserAccountRequest saveUserAccountRequest,Long operatorId);

	ResponseMessage deleteUserAccount(Long id,Long currentUserId);

	ResponseMessage<UserAccountDetail> getUserAccountDetailById(Long id,Long customerId);

	ResponseMessage<List<SelectBoxDataVo>> getUsers(Long customerId);

	ResponseMessage<List<SelectBoxDataVo>> getRoles(Long customerId);

	ResponseMessage<List<ShopAccount>> getShopPermissions(Long customerId);

	ResponseMessage updateAccountStartStop(
			SaveAccountStartStopRequest saveAccountStartStopRequest);

	ResponseMessage updateUserAccountPwd(
			SaveAccountPwdRequest saveAccountPwdRequest);

	Long getCompanyId(Long userId);

	String getUserAccountNameById(Long id);


	boolean setAccountStatusById(SetAccountStatusRequest setAccountStatusRequest);

	boolean setAccountStatusByName(
			SetAccountStatusRequest setAccountStatusRequest);

	ResponseMessage<Long> getUserRoleId(Long userId);

}
